﻿/*
 * Handle all subscription
 *
 * NOTE:
 *
 *      Will implement in M3(beta)
 *
 *
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Snowdreamist.Collection;

namespace SNSpirit.Domain.Subscription
{
    public class SubscriptionService
    {
        public static SubscriptionService<T> CreateSubscrptionService<T>()
        {
            throw new NotImplementedException();
        }

        public static ConcurrentObservableCollection<SubscriptionService> SubscrptionServices { get; private set; }
    }

    public class SubscriptionService<T> : SubscriptionService
    {
        internal SubscriptionService() { }

        /// <summary>
        /// Create a poll subscription
        /// </summary>
        /// <param name="parameters"></param>
        /// <param name="callback"></param>
        /// <returns></returns>
        public PollSubscription<T> CreatePollSubscription(string friendlyName, object[] parameters, IPollCallback<T> callback)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// Remove a subscription
        /// </summary>
        /// <param name="subs"></param>
        public void RemoveSubscription(SubscriptionBase<T> subs)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// All subscriptions
        /// </summary>
        public ConcurrentObservableCollection<SubscriptionBase<T>> Subscriptions { get; private set; }
    }
}